home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 October / PCWorld_2006-10_cd.bin / v cisle / tweakui / TweakUiPowertoySetup.exe / RCDATA / 1 / TweakUI.exe / HTML / UNINSTALL.HTA
Text File  |  2003-06-25  |  4KB  |  160 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 
  2.     "http://www.w3.org/TR/html4/loose.dtd">
  3. <HTML RTL=1>
  4. <HEAD>
  5. <TITLE>Uninstalling Tweak UI</TITLE>
  6. <HTA:APPLICATION
  7.     APPLICATIONNAME="uninstallTweakUI"
  8.     _BORDER="dialog"
  9.     CONTEXTMENU="no"
  10.     INNERBORDER="no"
  11.     MAXIMIZEBUTTON="no"
  12.     MINIMIZEBUTTON="no"
  13.     SCROLL="no"
  14.     SELECTION="no"
  15.     SINGLEINSTANCE="yes"
  16.  />
  17. <STYLE>
  18. HTML {
  19.     background-color: threedface; color: buttontext;
  20.     font-family: Tahoma; font-size: 10pt;
  21. }
  22. LI { list-style-type: none }
  23. }
  24. </STYLE>
  25. </HEAD>
  26. <SCRIPT LANGUAGE="JScript" DEFER>
  27. var FSO;
  28. var WshShell;
  29. var c_msDelay = 50; // intentionally slow down so people can watch
  30. var g_cTasks;
  31. var g_iCur;
  32. var c_keyPath = "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Tweak UI 2.10\\";
  33.  
  34. function beginUninstall()
  35. {
  36.     oIntro.style.display = "none";
  37.     oProgress.style.display = "block";
  38.     FSO = new ActiveXObject("Scripting.FileSystemObject");
  39.     WshShell = new ActiveXObject("WScript.Shell");
  40.     g_cTasks = document.all.tags("LI");
  41.     g_iCur = 0;
  42.     window.setTimeout(startAction, c_msDelay);
  43. }
  44.  
  45. function startAction()
  46. {
  47.     g_cTasks[g_iCur].style.listStyleType = "disc";
  48.     window.setTimeout(performAction, c_msDelay);
  49. }
  50.  
  51. function performAction()
  52. {
  53.     if (eval(g_cTasks[g_iCur]._action)) {
  54.         g_iCur++;
  55.         if (g_iCur < g_cTasks.length) {
  56.             window.setTimeout(startAction, c_msDelay);
  57.         }
  58.     }
  59. }
  60.  
  61. function deleteShortcut()
  62. {
  63.     var pathShortcut;
  64.     try {
  65.         pathShortcut = WshShell.RegRead(c_keyPath + "ShortcutPath");
  66.     } catch (e) {
  67.         return true; // key doesn't exist - nothing to delete
  68.     }
  69.  
  70.     // Delete shortcut if present - keep going on failure
  71.     try { FSO.DeleteFile(pathShortcut); } catch (e) { }
  72.  
  73.     // Delete folder if empty - keep going on failure
  74.     var pathFolder = FSO.GetParentFolderName(pathShortcut);
  75.     if (FSO.GetFolder(pathFolder).Files.Count == 0) {
  76.         try { FSO.DeleteFolder(pathFolder); } catch (e) { }
  77.     }
  78.  
  79.     return true;
  80. }
  81.  
  82. function deleteUninstall()
  83. {
  84.     //  Ignore failure
  85.     try { WshShell.RegDelete(c_keyPath); } catch (e) { }
  86.     return true;
  87. }
  88.  
  89. var g_nTries = 0;
  90.  
  91. function deleteFiles()
  92. {
  93.     var ss = (window.location + "").split("/");
  94.     if (ss.length == 4 && ss[0] == "res:") {
  95.     } else {
  96.         alert("Unable to location installed copy of Tweak UI.");
  97.         window.close();
  98.         return false;
  99.     }
  100.  
  101.     var pathSelf = ss[2];
  102.  
  103.     try {
  104.         FSO.DeleteFile(FSO.GetParentFolderName(pathSelf) +
  105.                        "\\PowerToysLicense.rtf");
  106.     } catch (e) { }
  107.  
  108.     var fSuccess = false;
  109.     try { FSO.DeleteFile(pathSelf); fSuccess = true; }
  110.     catch (e) {
  111.         if (e.number == -2146828218 && ++g_nTries < 5) {
  112.             window.setTimeout(startAction, 250);
  113.             return false;   // wait and try again
  114.         }
  115.     };
  116.  
  117.     if (g_nTries >= 5) {
  118.         alert("Unable to delete Tweak UI.  Make sure no copies of Tweak UI are running.");
  119.         window.close();
  120.         return false;
  121.     }
  122.  
  123.     if (!fSuccess) {
  124.         alert("Unable to delete Tweak UI.  " + e.message);
  125.         window.close();
  126.         return false;
  127.     }
  128.  
  129.     return true;
  130. }
  131.  
  132. function reportFinished()
  133. {
  134.     g_cTasks[g_iCur].style.display = "list-item";
  135.     oClose.focus();
  136.     return true;
  137. }
  138. </SCRIPT>
  139.  
  140. <BODY onload=oCancel.focus()>
  141. <DIV ID=oContent STYLE="position: absolute; height: 11em; width: 20em"></DIV>
  142. <SCRIPT LANGUAGE="JScript">
  143.     window.resizeTo(oContent.offsetWidth,oContent.offsetHeight);
  144. </SCRIPT>
  145. <TABLE ID=oIntro>
  146. <TR><TD>Click the "Uninstall" button to uninstall Tweak UI.</TD></TR>
  147. <TR><TD ALIGN=right><BUTTON onclick=beginUninstall()>Uninstall</BUTTON>
  148.  <BUTTON ID=oCancel onclick=window.close()>Cancel</BUTTON>
  149. </TR></TD>
  150. </TABLE>
  151. <UL ID=oProgress STYLE="display:none; margin-bottom: 0pt">
  152. <LI _action=deleteShortcut()>Deleting Start menu icon
  153. <LI _action=deleteUninstall()>Deleting uninstall information
  154. <LI _action=deleteFiles()>Deleting files
  155. <LI _action=reportFinished() style="display:none">Done
  156. <DIV ALIGN=right><BUTTON ID=oClose onclick=window.close()>Close</BUTTON></DIV>
  157. </UL>
  158. </BODY>
  159. </HTML>
  160.